/*
 * Klasse, die das Fenster zur Erstellung einer neuen Kategorie abbildet
 * 
 */

package com.rss.app;

import com.mysql.mysqlCategories;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Window;
import java.util.logging.Level;
import java.util.logging.Logger;


/**
 *
 * @author Dell
 */
public class newcat_window extends Window{

    //globales Textfeld für den Namen der neuen Kategorie
    private TextField catNameField = new TextField();
    //Instanz des newfeed_window, um die Kategorie-Auswahl nach Erstellung zu aktualisieren
    private newfeed_window parentwindow;

    //Konstruktor
    public newcat_window(newfeed_window r)
    {
        //übernehme die übergebenen Instanz des newfeed_window
        parentwindow = r;
        //Fenster wird modal gesetzt (keine anderen Elemente der Applikation sind ausführbar, bis auf das Fenster)
        this.setModal(true);
        //Höhe und Breite des Fensters wird gesetzt
        this.setWidth("250px");
        this.setHeight("250px");
        //Neues Label für die Überschrift erstellen
        Label logText = new Label("<h3>Neue Kategorie anlegen</h3>",Label.CONTENT_XHTML);
        //Label als Komponente hinzufügen
        this.addComponent(logText);
        //Neues Label für die Bezeichnung des Textfeldes erstellen
        Label catText = new Label("Kategoriename: ");
        //Label als Komponente hinzufügen
        this.addComponent(catText);
        //Textfeld als Komponente hinzufügen
        this.addComponent(catNameField);
        //Button zum anlegen der Kategorie erstellen
        Button newCatBtn = new Button("anlegen");
        //für den Button einen neuen Clicklistener erstellen
        newCatBtn.addListener(new Button.ClickListener() {
            //Funktion des Clicklisteners
            public void buttonClick(ClickEvent event) {
                try {
                    //wenn das Textfeld mit dem Kategorienamen der neuen Kategorie leer ist
                    if (catNameField.getValue().toString().equals(""))
                    {
                        //gebe Fehler aus
                         getWindow().showNotification(
                                (String) "Fehler",
                                (String) "Bitte Kategorienamen eingeben!",
                                Notification.TYPE_ERROR_MESSAGE);
                    }
                    //sonst wenn der KAtegoriename bereits in der DB existiert
                    else if(mysqlCategories.checkIfCategoryExists(catNameField.getValue().toString()))
                    {
                        //gebe Fehler aus
                         getWindow().showNotification(
                                (String) "Fehler",
                                (String) "Kategoriename existiert bereits!",
                                Notification.TYPE_ERROR_MESSAGE);
                    }
                    //sonst wenn die neue Kategorie erfolgreich gespeichert wurde
                    else if (mysqlCategories.saveNewCat(catNameField.getValue().toString()))
                    {
                        //gebe Hinweis aus
                         getWindow().showNotification(
                                (String) "Erfolgreich!",
                                (String) "Kategorie erfolgreich angelegt!",
                                Notification.TYPE_WARNING_MESSAGE);
                         //erneuer die Kategorien der übergebenen newfeed_window-Instanz
                         parentwindow.fillCatSelect();

                    }
                } catch (Exception ex) {
                    Logger.getLogger(newcat_window.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        //füge den Button als Komponente hinzu
        this.addComponent(newCatBtn);
    }

  
}
